ubuntu server 操作方法
主要使用的是20.04legacy版本,或24.04LTS版本
用
树莓派镜像烧录器(Raspberry Pi Imager)
烧录系统,在烧录系统的时候就可以配置用户名、密码、主机名、wifi等,这样就不需要先用键盘/显示器登录。
功能:
- 作为cloudflare tunnel的Connector、配置了个cloudflared.server,接入cloudflare。
- 作转发节点。配置了个gost.server,这是使用pi能使用docker的前置条件。(PS:不过在群辉配置好环境变量,能连接dockerhub之后,下载了gost,也就不需要它了。属于“过河拆桥”了)
一、网络配置
1.1 配置WiFi
配置的password是经过加密的,利用wpa_passphrase
:
1 | sudo wpa_passphrase "wifiuser" "wifipasswd" |
修改配置文件:
1 | network: |
1.2 修改eth0为静态IP
建议在openwrt里面绑定静态地址,不要在这里直接改,防止更换了路由器还得修改之后再接入。
要是一定要修改,如下:
1 | network: |
1.3 使网络配置生效
1 | sudo netplan apply |
二、配置镜像源
sudo vi /etc/apt/sources.list.d/ubuntu.sources
:
1 | Types: deb |
原来的源不能删除,因为有些deb国内下载不了,比如sudo apt install docker.io
三、scp拷贝文件到服务器
1 | scp local_file_name root@server_ip:/path |
这不是因为路径文件夹没有权限,也不是因为root密码输入错误,更不是sshd服务没开。是因为server默认不允许远程用root身份ssh登录,需要修改sshd
的配置文件 sudo vi /etc/ssh/sshd_config
:
1 | PermitRootLogin yes #允许root登录 |
配置后重启sshd服务:
1 | /etc/init.d/ssh restart |
四、本地gost代理中转
4.1 配置
在windows上直接是gost.exe -L :6666 -F https://www.proxyServer.xyz:443?auth=base64(user:passwod)
,其实也可以利用./gost -L :6666 -F https://username:passwd@www.proxyServer.xyz:443 -O yaml
导出为一个配置文件写在/opt/gost/config.yaml
中:
1 | services: |
然后在/usr/lib/systemd/system/gost.service
配置服务:
1 | [Unit] |
4.2 检查服务是否开机自启动
用命令二其一:
1 | systemctl is-enabled gost.service |
若是disabled,设置开机自启动:
1 | sudo systemctl enable gost.service |
五、docker
5.1 docker需要代理
5.1.1 配置一个gost服务
1 | /opt/gost/gost -L :6666 -F proxy?auth=< auth > |
5.1.2 配置环境变量
在sudo vi /etc/profile
中配置环境变量:
1 | export http_proxy=http://127.0.0.1:6666 |
使生效:
1 | source /etc/profile |
5.2 安装docker和docker compose
这里需要先设置http_proxy和https_proxy环境变量,不然会访问超时。
- 卸载原来的docker相关包,防止冲突
1
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
- 更新
1
2
3sudo apt update
sudo apt upgrade
sudo apt full-upgrade - 首先,安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库
1
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
- 运行下列命令添加 Docker 的官方 GPG 密钥
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 再添加 Docker 官方库
1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 证书安装好了再update,因为docker用的是https
1
sudo apt update
- 开始安装docker(耗时长)
1
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 安装其他版本参考教程
- 验证 Docker 服务是否在运行
1
sudo systemctl status docker
- 使 Docker 服务在每次重启时自动启动
1
sudo systemctl enable docker
- 参照 5.1 给dokcer守护进程加代理
5.3 配置docker守护进程的proxy
问题:配置好了之后sudo docker search gost
仍然报错
报错内容:
1 | sudo HTTP_PROXY=http://127.0.0.1:6666 HTTPS_PROXY=http://127.0.0.1:6666 docker search gost |
原因(来自AI,后面也找到了依据,在下面的参考文档里):Docker 守护进程的代理设置:命令行中设置的代理环境变量只对当前命令生效,不会影响 Docker 守护进程。Docker 守护进程需要单独配置代理。为 Docker 守护进程配置代理:
- 编辑 Docker 服务文件(通常在
/etc/systemd/system/docker.service.d/http-proxy.conf
),添加:1
2
3[Service]
Environment="HTTP_PROXY=http://127.0.0.1:6666"
Environment="HTTPS_PROXY=http://127.0.0.1:6666" - 然后重启 Docker 服务:后面用
1
2sudo systemctl daemon-reload
sudo systemctl restart dockerdocker-compose
命令时,用sudo docker compose
去执行
5.4 参考文章
六、挂载设备
6.1 挂载硬盘
6.2 挂载samba服务
测试
1
sudo mount -t cifs //samba_ip/path_to_floder /mnt/ds/media -o username=jellyfin,password=my_passwd,vers=2.0
用
ls /mnt/ds/media
查看是不是都挂载成功了,要是可以正确列出文件,则samba服务没问题。sudo umount /mnt/ds/media
先卸载掉。防止重启之后挂载信息丢失
编辑/etc/fstab
,末尾增加一行1
//samba_ip/path_to_floder /mnt/ds/media cifs username=jellyfin,passwormy_passwd,vers=2.0,uid=1000,gid=1000,_netdev,x-systemd.automount,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s 0 0
编辑之后
sudo systemctl daemon-reload & sudo mount -a
去挂载
七、修改ubuntu server登录方式
7.1 默认登录方式
需要在server的.ssh/authorized_keys里面添加ssh client的publickey才能登录,不然不允许ssh登录。
7.2 修改配置文件
修改/etc/ssh/sshd_config.d/60-cloudimg-settings.conf
中的PasswordAuthentication yes
,若是没有这个文件就到/etc/ssh/sshd_config
中找。修改之后重启sshd服务sudo systemctl restart sshd
八、笔记本合上盖子之后休眠
- 修改配置文件
/etc/systemd/logind.conf
中的HandleLidSwitch
选项为ignore
:1
2HandleLidSwitch=suspend
HandleLidSwitch=ignore - 重启服务:
1
service systemd-logind restart
九、查看systemctl服务日志
systemctl服务启动失败
用命令
1 | journalctl -u frpc.service -n 50 |
查看日志